iT邦幫忙

2025 iThome 鐵人賽

DAY 1
2
DevOps

30 天挑戰 CKAD 認證!菜鳥的 Kubernetes 學習日記系列 第 1

【Day01】30天挑戰 CKAD!菜鳥工程師的 Kubernetes 學習起點

  • 分享至 

  • xImage
  •  

gh

自我介紹

哈囉大家好~這是我第二次參加鐵人賽,也是連續參賽的第二年。去年我寫的是 2024 iThome 鐵人賽 - T 大使 AI 之旅,主題選擇了 生成式 AI

這一年間經歷了不少事,先是當兵,然後找到人生第一份正職。有趣的是,去年文章主要使用的 OpenAI台智雲 模型我現在都不用了(雖然最近 Codex 的聲量讓我有點動搖,但目前還是寄生在 Claude Code),只能說 AI 領域真的是百家爭鳴、競爭超激烈的。

目前我是 AI 雲端開發工程師,主要工作是幫客戶在 GCP 上建立 AI 解決方案。Google 在 AI 方面的投入讓我們開發人員真的是方便很多。另外由於公司規模不大,還要身兼全端開發。雖然不敢說精通,但這讓我對 Next.js、Node.js、React、TypeScript 都熟悉了不少,甚至是在 CI/CD 部署到 GCP Cloud Run 的 DevOps,讓我對 Docker 和 Container 技術具備一定程度上的基礎和認知。

為什麼選擇 Kubernetes - CKAD?

今年我選擇了 DevOps 主題。其實在兩個技術之間猶豫了很久,一個是剛入職教育訓練時常看到、Google 官方也大力推薦的 Terraform,另一個就是我最後選擇的 Kubernetes

最終選擇 Kubernetes 的原因是:現在開發越來越講究 Microservices,而 K8s 就是為了管理這些分散式服務而生的,就連我們目前最多人使用的 AI 軟體 - ChatGPT 都是部署在 Kubernetes 上,三大雲端廠商也都全力支援。

不過 Kubernetes 的技術範疇實在太龐大了,所以我只會專注在 CKAD 認證會考的內容。所以像 Istio、Jenkins、Prometheus、Grafana、Harbor 這些跟 K8s 整合很好的第三方工具,就不會深入討論了(如果時間允許,或許可以當作延伸學習)。

Docker vs Kubernetes:不是競爭對手,是合作夥伴

先破解一個常見迷思:Kubernetes 不是來取代 Docker 的,而是用來管理 Docker 容器。簡單來說:

  • Docker:像是執行者,負責建構(build)和執行(run)容器
  • Kubernetes:像是指揮官,負責管理這些容器 - 何時啟動、在哪啟動、如何通訊、如何擴展等等

為什麼需要 Kubernetes?

用 Docker 時會遇到的麻煩事:

  • 容器掛了要手動重啟
  • 流量大了要手動開更多容器,還要自己設負載平衡
  • 更新版本時要手動停舊的、開新的,服務可能會中斷
  • 多個服務要互相通訊時,IP 和 port 要自己管理

上述這些繁瑣又容易出錯的工作,Kubernetes 全部都自動化了!

Kubernetes 的強大之處

  1. 自動化與規模化 (Automation and Scalability)
    • 自動擴展:流量大了自動加容器,流量小了自動減容器,省錢又省力
    • 自我修復:容器掛了會自動重啟新的,服務不中斷
  2. 高可用性與負載平衡 (High Availability & Load Balancing)
    • 高可用部署:把應用程式分散到多台機器,一台掛了其他還能繼續跑
    • 內建負載平衡:自動把流量分散到健康的容器上,避免某個容器被操爆
  3. 複雜應用管理 (Complex Application Management)
    • 支援微服務架構:現代應用可能有幾十個服務,K8s 提供各種工具讓管理變得有條理
    • 配置管理:把設定檔和敏感資料(密碼、API key)跟程式分開管理,更安全也更靈活
  4. 跨平台支援 (Cross-Platform Support)
    • 不被廠商綁定:可以在 AWS、GCP、Azure 或自己的機房運行,管理方式都一樣
    • 豐富生態系:網路、監控、安全、儲存等功能都有完整的解決方案

題外話🤣

可能有人好奇為什麼 Kubernetes 常常被縮寫成 K8s?

Kubernetes 這個字總共有 10 個字母:K-u-b-e-r-n-e-t-e-s,所以就變成了 K(第一個字母)+ 8(中間 8 個字母)+ s(最後一個字母)= K8s。

類似的縮寫還有:

  • internationalization → i18n
  • localization → l10n
  • accessibility → a11y

雖然剛開始看會覺得有點奇怪,但是看久了、用久了就習慣了。而且打字也比較快啊!😄

下一篇文章:搞懂 K8s 架構:Master Node 和 Worker Node 的分工合作


下一篇
【Day02】搞懂 K8s 架構:Master Node 和 Worker Node 的分工合作
系列文
30 天挑戰 CKAD 認證!菜鳥的 Kubernetes 學習日記5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言